import { defineConfig, loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path'

// https://vitejs.dev/config/
export default defineConfig(({ command, mode }) => {
  // 获取环境变量
  const env = loadEnv(mode, process.cwd())

  return {
    plugins: [vue()],
    resolve: {
      alias: {
        '~': path.resolve(__dirname, './'),
        "@": path.resolve(__dirname, 'src'),
        'api': path.resolve(__dirname, 'src/api')
      }
    },
    build: {
      chunkSizeWarningLimit: 3000,
    },
    hostname: '127.0.0.1',
    port: 8000,
    // 是否自动在浏览器中打开
    open: false,
    // 是否开启https
    https: false,
    // 服务端渲染
    ssr: false,
    /**
      * 在生产中服务时的基本公共路径。
      * @default '/'
      */
    base: './',
    /**
     * 与“根”相关的目录，构建输出将放在其中。如果目录存在，它将在构建之前被删除。
     * @default 'dist'
     */
    outDir: 'dist',
    // 反向代理，此处应该特别注意，网上很多教程是直接设置proxy，并没有向官网那样添加 server，可能会导致失败，vite官网：https://vitejs.dev/guide/features.html#async-chunk-loading-optimization
    server: {
      proxy: {
        '^/api': {
          target: env.VITE_BASE_URL,   //代理接口
          changeOrigin: true,
        },
      }
    },
    hmr: { overlay: false }
  }
})
